Programaci贸n Orientada a Objetos (POO) en Python 馃悕

Python Logo

馃幆 Objetivos:

  • Comprender los conceptos b谩sicos del paradigma de la POO en Python.
  • Aplicar el concepto de clases y objetos en la resoluci贸n de problemas.
  • Explorar la encapsulaci贸n, herencia y polimorfismo como mecanismos clave de la POO.

Conceptos B谩sicos 馃捇

Python Logo

POO es un paradigma de programaci贸n que se basa en la creaci贸n de clases y objetos que interact煤an entre s铆 para modelar y resolver problemas del mundo real de manera m谩s efectiva.

En Python, la POO es una parte fundamental y poderosa del lenguaje, lo que permite la creaci贸n de c贸digo modular, reutilizable y f谩cil de mantener.

Clases y Objetos 馃挕

Python Logo

Clases 馃挕

Python Logo

Una clase es una plantilla que define las propiedades y comportamientos comunes de un tipo de objeto.

Define la estructura de los objetos, pero no contiene datos reales. En Python, las clases se definen utilizando la palabra clave class.

Ejemplo 馃挕

Python Logo

class Coche:
    # Constructor
    def __init__(self, marca, modelo):
        self.marca = marca
        self.modelo = modelo

    # M茅todo
    def conducir(self):
        print(f"Conduciendo el {self.marca} {self.modelo}")
            

Objeto 馃挕

Python Logo

Un objeto es una instancia espec铆fica de una clase.

Se crea a partir de una clase y tiene sus propios valores para las propiedades de la clase.

Los objetos pueden acceder a los m茅todos y atributos definidos en la clase.

Ejemplo馃挕

Python Logo

class Persona:
    # Variable de clase
    especie = "Humano"

    # Constructor
    def __init__(self, nombre, edad):
        # Variables de instancia
        self.nombre = nombre
        self.edad = edad

    # M茅todo
    def saludar(self):
        print(f"Hola, mi nombre es {self.nombre} y tengo {self.edad} a帽os")
            

Atributos y M茅todos 馃懅

Python Logo

Atributos: Los atributos son variables asociadas a un objeto que representan caracter铆sticas o datos de ese objeto.

Pueden ser variables de instancia (pertenece a cada objeto) o variables de clase (compartidas por todos los objetos de la misma clase).

Ejemplo馃挕

Python Logo

class Persona:
    # Variable de clase
    especie = "Humano"

    # Constructor
    def __init__(self, nombre, edad):
        # Variables de instancia
        self.nombre = nombre
        self.edad = edad

    # M茅todo
    def saludar(self):
        print(f"Hola, mi nombre es {self.nombre} y tengo {self.edad} a帽os")
            

Metodos 馃摝

Python Logo

M茅todos: Los m茅todos son funciones definidas en una clase que representan comportamientos o acciones que los objetos de esa clase pueden realizar.

Pueden acceder y modificar los atributos de la clase.

Encapsulaci贸n馃摝

Python Logo

Es el proceso de ocultar los detalles internos de un objeto y exponer solo las operaciones necesarias para interactuar con 茅l.

En Python, la encapsulaci贸n se logra utilizando convenciones de nomenclatura y m茅todos especiales como getters y setters.

Herencia: 馃摝

Python Logo

Es un mecanismo que permite a una clase heredar atributos y m茅todos de otra clase.

La clase que hereda se llama subclase o clase hija, y la clase de la que se hereda se llama superclase o clase padre.

Polimorfismo 馃摝

Python Logo

Es la capacidad de un objeto para tomar varias formas.

En Python, el polimorfismo se logra mediante el uso de m茅todos con el mismo nombre en diferentes clases, que pueden comportarse de manera diferente seg煤n la clase a la que pertenezcan.

Proyecto Python Avanzado 馃殌

Python Logo

En este proyecto, los estudiantes tendr谩n la oportunidad de aplicar todos los conceptos aprendidos en un proyecto pr谩ctico de Python.

Proyecto Python Avanzado 馃殌

Python Logo

El proyecto consistir谩 en desarrollar una aplicaci贸n que aborde un problema real o simule un escenario del mundo real.

Proyecto 馃殌

Python Logo

Los estudiantes deber谩n dise帽ar la estructura del proyecto, implementar las clases necesarias utilizando la POO, organizar el c贸digo en m贸dulos y paquetes, y aplicar los principios de encapsulamiento, herencia y polimorfismo seg煤n corresponda.

Proyectos de la Vida Real 馃寪

  • Sistema de Gesti贸n de Biblioteca: Un sistema que permite a los usuarios buscar, prestar y devolver libros, as铆 como administrar el inventario de la biblioteca.
  • Aplicaci贸n de Gesti贸n de Tareas: Una aplicaci贸n que permite a los usuarios crear, organizar y seguir el progreso de sus tareas y proyectos.

Proyectos de la Vida Real 馃寪

  • Simulador de Sistema Bancario: Un sistema que simula las operaciones bancarias b谩sicas, como dep贸sitos, retiros y transferencias, para clientes y empleados del banco.
  • Plataforma de Gesti贸n de Proyectos: Una plataforma en l铆nea que permite a los equipos colaborar, asignar tareas, realizar seguimientos y gestionar proyectos de manera eficiente.

Bibliograf铆a 馃搾

Gracias

Diego Savedra

Facilitador: Diego Saavedra

Correo: dsaavedra@codingsacademy.com